#include <iostream>
#include <windows.h>
#include <conio.h>

using namespace std;

// 设置控制台颜色（白色）
// void SetColor(int color = 15) {
//     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);
// }

// 设置光标位置
void SetPosition2(short x, short y) {
    COORD pos = { x, y };
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}


// 绘制游戏边框
void DrawBorder2() {
    // 上边框
    SetPosition2(0, 0);
    cout << "╔";
    for (int i = 0; i < 78; i++) cout << "═";
    cout << "╗";

    // 侧边框
    for (int i = 1; i < 39; i++) {
        SetPosition2(0, i);
        cout << "║";
        SetPosition2(79, i);
        cout << "║";
    }

    // 下边框
    SetPosition2(0, 39);
    cout << "╚";
    for (int i = 0; i < 78; i++) cout << "═";
    cout << "╝";
}

// 打印蛇的字符画
void printwhy() {
    // 居中显示标题
    SetPosition2(12, 7);
    cout << "游戏说明：" ;
    //介绍规则
    SetPosition2(19, 12);
    cout << "1.用上下左右键控制蛇移动，按F1可以使蛇加速，";
    SetPosition2(21, 13);
    cout << "按F2可以使蛇减速,速度影响得分" ;
    SetPosition2(19, 14);
    cout << "2.当蛇头撞到自己身体或者撞到墙视为游戏失败";
    SetPosition2(19, 15);
    cout << "3.蛇吃到食物后身体会延长一格" ;
    SetPosition2(19, 16);
    cout << "4.蛇吃到食物后速度会增加" ;
    SetPosition2(19, 17);
    cout << "5.游戏过程中按ESC键可以退出游戏" ;
    SetPosition2(21, 19);
    cout << "按空格键返回主菜单" ;
}

// 封装后的主逻辑函数
void explaination() {
    // 设置控制台窗口大小
    system("mode con cols=100 lines=80");
    DrawBorder2();
    // 隐藏光标
    CONSOLE_CURSOR_INFO cursor_info = { 1, 0 };
    SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);

    printwhy();
}